package com.fabriciojf.dbunit;

import java.io.FileNotFoundException;

import junit.framework.TestCase;

import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.DataSetException;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlProducer;
import org.dbunit.operation.DatabaseOperation;
import org.junit.After;
import org.junit.Test;
import org.xml.sax.InputSource;

/**
 * Caso de teste para limpeza do banco de dados, deverá ser executado no fim do suite para limpar os dados
 * inseridos previamente no banco
 * 
 * @author Fabricio S Costa
 * @since 03/09/2010
 * @version 1.0
 */
public class DBUnitClean extends TestCase {
	
	/**
	 * Limpa os dados do banco
	 */
    @After
    public void tearDown() throws FileNotFoundException, DataSetException {
        
    	// le o arquivo xml contendo os dados a serem deletados
        FlatXmlProducer producer = new FlatXmlProducer(new InputSource("src/test/resources/sample-data.xml"));
        IDataSet data = new FlatXmlDataSet(producer);

        try {
            IDatabaseConnection connection = JDBCConnection.getConnectionPrincipal();
            
            // deleta os dados do banco
            DatabaseOperation.DELETE.execute(connection, data);
        } catch (Exception exc) {
            exc.printStackTrace();
        }
    }
    
    /**
     * Informa ao console o inicio da limpeza do banco de dados. 
     * Utilizado pelo console do Husdon, não retirar esse caso de testes
     */
    @Test
    public void testDBUnitImport1() {
        System.out.println("TESTE: Limpando o Banco de Dados (DBUnit) ...");
    }
}
